home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 50550 / 50550.xpi / chrome / clickabilitydeveloper.jar / content / clickabilitydeveloper.js next >
Text File  |  2010-01-14  |  10KB  |  251 lines

  1. var ClickabilityDeveloper_NewWindow = null;
  2. var ClickabilityDeveloper_DebugParameter = "debug";
  3. var ClickabilityDeveloper_HelpParameter = "showHelp";
  4. var ClickabilityDeveloper_DebugModes = new Array("basic","extended","full");
  5. var ClickabilityDeveloper_DebugMode = "basic";
  6.  
  7. window.addEventListener("load", ClickabilityDeveloper_Initialize, false);
  8.  
  9. // Initializes the extension
  10. function ClickabilityDeveloper_Initialize(event)
  11. {
  12.     document.getElementById("ClickabilityDeveloper-basicDebug-Menu").setAttribute("checked","checked");
  13.     document.getElementById("ClickabilityDeveloper-basicDebug-Menu").setAttribute("checked","true");
  14. }
  15.  
  16. ////////////////////////////////////////////////////////////////////////////////
  17. // The ClickabilityDeveloper_CacheBust() function performs a cache-bust on the page
  18. ////////////////////////////////////////////////////////////////////////////////
  19. function ClickabilityDeveloper_CacheBust() {
  20.     var r = ClickabilityDeveloper_GetRandomString(8);
  21.     var url = new String(window._content.document.location);
  22.     var p = "abc";
  23.     var value = ClickabilityDeveloper_GetParamterValue(p);
  24.     
  25.     if( value == "" ) {
  26.         if(url.indexOf("?")==-1) {
  27.             ClickabilityDeveloper_LoadURL(url+"?"+p+"="+r);
  28.         } else {
  29.             ClickabilityDeveloper_LoadURL(url+'&'+p+"="+r);
  30.         }
  31.     } else {
  32.         var newURL = url.replace(p+"="+value, p+"="+r);
  33.         ClickabilityDeveloper_LoadURL(newURL);
  34.     }
  35. }
  36.  
  37.  
  38. ////////////////////////////////////////////////////////////////////////////////
  39. // The ClickabilityDeveloper_Debug() function toggles debugging mode
  40. ////////////////////////////////////////////////////////////////////////////////
  41. /*
  42. function ClickabilityDeveloper_Debug() {
  43.     var url = new String(window._content.document.location);
  44.     var p = ClickabilityDeveloper_DebugParameter;    
  45.     var value = ClickabilityDeveloper_GetParamterValue(p);
  46.     if( value == "" ) {
  47.         if(url.indexOf("?")==-1) {
  48.             ClickabilityDeveloper_LoadURL(url+"?"+p+"=y");
  49.         } else {
  50.             ClickabilityDeveloper_LoadURL(url+'&'+p+"=y");
  51.         }
  52.     } else {
  53.     
  54.         if(value == "y") {
  55.             // Debug is already in the url, we reverse it to turn if off
  56.             var newURL = url.replace(p+"="+value, p+"=n");
  57.         } else {
  58.             var newURL = url.replace(p+"="+value, p+"=y");
  59.         }
  60.     
  61.         
  62.         ClickabilityDeveloper_LoadURL(newURL);
  63.     }    
  64. }
  65. */
  66.  
  67. function ClickabilityDeveloper_ChangeDebugMode(mode) {
  68.     ClickabilityDeveloper_DebugMode = mode.toLowerCase();
  69.     var url = new String(window._content.document.location);
  70.     var value = ClickabilityDeveloper_GetParamterValue(ClickabilityDeveloper_DebugParameter);
  71.     var i;
  72.     var newURL = '';
  73.     
  74.     // Uncheck other modes
  75.     for (i in ClickabilityDeveloper_DebugModes) {
  76.         if(ClickabilityDeveloper_DebugMode == ClickabilityDeveloper_DebugModes[i]) {
  77.             /*
  78.                 Make sure at least one debug mode is checked
  79.             */    
  80.             document.getElementById("ClickabilityDeveloper-"+ClickabilityDeveloper_DebugModes[i]+"Debug-Menu").setAttribute("checked","true");
  81.         } else if(ClickabilityDeveloper_DebugMode != ClickabilityDeveloper_DebugModes[i]) {
  82.             document.getElementById("ClickabilityDeveloper-"+ClickabilityDeveloper_DebugModes[i]+"Debug-Menu").setAttribute("checked","false");
  83.         }
  84.     }
  85.     
  86.     if( value != "" ) {
  87.         if(url.indexOf("?"+ClickabilityDeveloper_DebugParameter+"&") > -1) {
  88.             newURL = url.replace(ClickabilityDeveloper_DebugParameter+"="+value, "?"+ClickabilityDeveloper_DebugParameter+"="+ClickabilityDeveloper_DebugMode);
  89.         } else if(url.indexOf("?"+ClickabilityDeveloper_DebugParameter) > -1) {
  90.             newURL = url.replace("?"+ClickabilityDeveloper_DebugParameter+"="+value, "?"+ClickabilityDeveloper_DebugParameter+"="+ClickabilityDeveloper_DebugMode);
  91.         }else {
  92.             newURL = url.replace("&"+ClickabilityDeveloper_DebugParameter+"="+value, "&"+ClickabilityDeveloper_DebugParameter+"="+ClickabilityDeveloper_DebugMode);
  93.         }
  94.         ClickabilityDeveloper_LoadURL(newURL);
  95.     }
  96. }
  97.  
  98. function ClickabilityDeveloper_ToggleDebug() {
  99.     
  100.     var url = new String(window._content.document.location);
  101.     var value = ClickabilityDeveloper_GetParamterValue(ClickabilityDeveloper_DebugParameter);
  102.  
  103.     if( value == "" ) {
  104.         // Add parameter to url
  105.         if(url.indexOf("?")==-1) {
  106.             ClickabilityDeveloper_LoadURL(url+"?"+ClickabilityDeveloper_DebugParameter+"="+ClickabilityDeveloper_DebugMode);
  107.         } else {
  108.             ClickabilityDeveloper_LoadURL(url+'&'+ClickabilityDeveloper_DebugParameter+"="+ClickabilityDeveloper_DebugMode);
  109.         }
  110.     } else {        
  111.         // Remove parameter from url
  112.         if(url.indexOf("?"+ClickabilityDeveloper_DebugParameter+"="+value+"&") > -1) {
  113.             newURL = url.replace(ClickabilityDeveloper_DebugParameter+"="+value+"&", "");
  114.         } else if(url.indexOf("?"+ClickabilityDeveloper_DebugParameter+"="+value) > -1) {
  115.             newURL = url.replace("?"+ClickabilityDeveloper_DebugParameter+"="+value, "");
  116.         } else {
  117.             newURL = url.replace("&"+ClickabilityDeveloper_DebugParameter+"="+value, "");
  118.         }
  119.         ClickabilityDeveloper_LoadURL(newURL);
  120.     }    
  121. }
  122. ////////////////////////////////////////////////////////////////////////////////
  123. // The ClickabilityDeveloper_Environment() function changes the server environment
  124. ////////////////////////////////////////////////////////////////////////////////
  125. function ClickabilityDeveloper_Environment(env) {
  126.     var host = ClickabilityDeveloper_GetHost();
  127.     var newURL = window._content.document.location.protocol + "//" + env + host + window._content.document.location.pathname + window._content.document.location.search;
  128.     
  129.     ClickabilityDeveloper_LoadURL(newURL);
  130. }
  131.  
  132. ////////////////////////////////////////////////////////////////////////////////
  133. // The ClickabilityDeveloper_GetHost() function extracts the domain from the URL
  134. ////////////////////////////////////////////////////////////////////////////////
  135. function ClickabilityDeveloper_GetHost() {
  136.     /*
  137.     Original code
  138.     var domain = window._content.document.location.host;
  139.     var tldPos = domain.lastIndexOf(".");
  140.     var hostPos = domain.lastIndexOf(".",tldPos-1);
  141.     return domain.substring(hostPos+1);
  142.     
  143.     Rewritten by Noach Magedman <nmagedman@aish.com> to handle multiple subdomains
  144.     e.g. www.foo.co.il or www.foo.bar.com
  145.     */
  146.     var host = window._content.document.location.host;
  147.     var domainPos = host.indexOf("www.") + 4;
  148.     return host.substring(domainPos);
  149. }
  150.  
  151. ////////////////////////////////////////////////////////////////////////////////
  152. // The ClickabilityDeveloper_GetParamterValue() function gets a URL parameter's value
  153. ////////////////////////////////////////////////////////////////////////////////
  154. function ClickabilityDeveloper_GetParamterValue(name) {
  155.     name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  156.     var regexS = "[\\?&]"+name+"=([^&#]*)";
  157.     var regex = new RegExp( regexS );
  158.     var results = regex.exec( window._content.document.location );
  159.     if( results == null ) {
  160.         return "";
  161.     } else {
  162.         return results[1];
  163.     }
  164. }
  165.  
  166. ////////////////////////////////////////////////////////////////////////////////
  167. // The ClickabilityDeveloper_GetRandomString() function generates a random alphanumeric string
  168. ////////////////////////////////////////////////////////////////////////////////
  169. function ClickabilityDeveloper_GetRandomString(strlength) {
  170.     var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
  171.     var randomstring = '';
  172.     for (var i=0; i<strlength; i++) {
  173.         var rnum = Math.floor(Math.random() * chars.length);
  174.         randomstring += chars.substring(rnum,rnum+1);
  175.     }
  176.     return randomstring;
  177. }
  178.  
  179. ////////////////////////////////////////////////////////////////////////////////
  180. // The ClickabilityDeveloper_Help() function turns on help mode
  181. ////////////////////////////////////////////////////////////////////////////////
  182. /* Old function
  183. function ClickabilityDeveloper_Help() {
  184.     var url = new String(window._content.document.location);
  185.     var p = "showHelp";    
  186.     var value = ClickabilityDeveloper_GetParamterValue(p);
  187.     if( value == "" ) {
  188.         if(url.indexOf("?")==-1) {
  189.             ClickabilityDeveloper_LoadURL(url+"?"+p+"=y");
  190.         } else {
  191.             ClickabilityDeveloper_LoadURL(url+'&'+p+"=y");
  192.         }
  193.     } else {        
  194.         if(value == "y") {
  195.             // Debug is already in the url, we reverse it to turn if off
  196.             var newURL = url.replace(p+"="+value, p+"=n");
  197.         } else {
  198.             var newURL = url.replace(p+"="+value, p+"=y");
  199.         }
  200.         ClickabilityDeveloper_LoadURL(newURL);
  201.     }    
  202. }
  203. */
  204. function ClickabilityDeveloper_Help() {
  205.     var url = new String(window._content.document.location);
  206.     var value = ClickabilityDeveloper_GetParamterValue(ClickabilityDeveloper_HelpParameter);
  207.     if( value == "" ) {
  208.         // Add parameter to url
  209.         if(url.indexOf("?")==-1) {
  210.             ClickabilityDeveloper_LoadURL(url+"?"+ClickabilityDeveloper_HelpParameter+"=y");
  211.         } else {
  212.             ClickabilityDeveloper_LoadURL(url+'&'+ClickabilityDeveloper_HelpParameter+"=y");
  213.         }
  214.     } else {
  215.         // Remove parameter from url
  216.         if(url.indexOf("?"+ClickabilityDeveloper_HelpParameter+"="+value+"&") > -1) {
  217.             newURL = url.replace(ClickabilityDeveloper_HelpParameter+"="+value+"&", "");
  218.         } else if(url.indexOf("?"+ClickabilityDeveloper_HelpParameter+"="+value) > -1) {
  219.             newURL = url.replace("?"+ClickabilityDeveloper_HelpParameter+"="+value, "");
  220.         } else {
  221.             newURL = url.replace("&"+ClickabilityDeveloper_HelpParameter+"="+value, "");
  222.         }
  223.         ClickabilityDeveloper_LoadURL(newURL);
  224.     }    
  225. }
  226. ////////////////////////////////////////////////////////////////////////////////
  227. // The ClickabilityDeveloper_LoadURL() function loads the specified URL in the browser.
  228. ////////////////////////////////////////////////////////////////////////////////
  229. function ClickabilityDeveloper_LoadURL(url) {
  230.     // Set the browser window's location to the incoming URL
  231.     window._content.document.location = url;
  232.  
  233.     // Make sure that we get the focus
  234.     window.content.focus();
  235. }
  236.  
  237. ////////////////////////////////////////////////////////////////////////////////
  238. // The ClickabilityDeveloper_Login() function launches the CMS login pop-up window
  239. ////////////////////////////////////////////////////////////////////////////////
  240. function ClickabilityDeveloper_Login(url) {
  241.     
  242.     if(ClickabilityDeveloper_NewWindow == null || ClickabilityDeveloper_NewWindow.closed) {
  243.         // Window does not exist, open new window
  244.         ClickabilityDeveloper_NewWindow = window.open(url,'ClickabilityTB_Window','title=yes,location=no,scrollbars=yes,menubar=no,toolbar=no,resizable=yes,status=yes,width=1015');
  245.     } else {
  246.         // Window is already open, focus window
  247.         ClickabilityDeveloper_NewWindow.focus();
  248.     } 
  249.  
  250. }
  251.